package com.nut.spp.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.fasterxml.jackson.databind.JsonNode;
import com.nut.spp.api.req.MemberCouponQueryReq;
import com.nut.spp.common.Result;
import com.nut.spp.entity.MemberCoupon;

import java.math.BigDecimal;

public interface MemberCouponService {

    //自用券 总百分占比
    int ZY_PERCENT = 75;

    //亲友券 总百分占比
    int QY_PERCENT = 100 - ZY_PERCENT;

    //自用券 比例  50的百分占比25
    int[][] ZY_ARRAY = {{50, 25}, {100, 25}, {200, 25}, {300, 25}};

    //亲友券 比例  50的百分占比25
    int[][] QY_ARRAY = {{50, 25}, {100, 25}, {200, 25}, {300, 25}};

    BigDecimal HUNDRED = new BigDecimal(100);

    //我的优惠券
    Result<IPage<MemberCoupon>> listPage(MemberCouponQueryReq req);

    Result<MemberCoupon> getById(Integer id);

    //初始化我的代金券， 之前别人送给我的
    Result initCoupon(Long memberId, String mobile);

    /**
     * 赠送代金券
     * @param id            券ID
     * @param sendMemberId  拥有人会员ID
     * @param receiveMobile 接收手机号
     * @return
     */
    Result sendCoupon(Integer id, Long sendMemberId, String receiveMobile);


    void callback(JsonNode jsonNode, String json);

    /**
     * 生成代金券
     * @param orderNo
     * @param orderMoney 元
     * @param mobile
     */
    void generateCoupon(String orderNo, String orderMoney, String mobile);

}
